package sqlbean

type App struct {
	Bean           `xorm:"extends"`
	Code    string `xorm:"code"`
	Name    string `xorm:"name"`
	Logo    string `xorm:"logo"`
	Brief   string `xorm:"brief"`
	Version string `xorm:"'version'"`
	Order   int    `xorm:"order"`
}

type User struct {
	Bean `xorm:"extends"`

	Sn        *string `json:"sn" xorm:"sn"`               // 工号
	Name      *string `json:"name" xorm:"name"`           // 姓名
	Account   *string `json:"account" xorm:"account"`     // 帐号
	Password  *string `json:"password" xorm:"password"`   // 密码
	Salt      *string `json:"salt" xorm:"salt"`           // salt
	Sex       *string `json:"sex" xorm:"sex"`             // 性别
	Birth     *string `json:"birth" xorm:"birth"`         // 出生年月
	Idcard    *string `json:"idcard" xorm:"idcard"`       // 身份证号
	Status    *string `json:"status" xorm:"status"`       // 状态
	Job       *string `json:"job" xorm:"job"`             // 岗位
	Email     *string `json:"email" xorm:"email"`         // 邮箱
	Mobile    *string `json:"mobile" xorm:"mobile"`       // 手机
	Smobile   *string `json:"smobile" xorm:"smobile"`     // 短号
	Telephone *string `json:"telephone" xorm:"telephone"` // 办公电话
	Group     *string `json:"group" xorm:"group"`         // 所属单位ID
	Direct    *string `json:"direct" xorm:"direct"`       // 直属上司ID
	Duty      *string `json:"duty" xorm:"duty"`           // 是否生产值班人员
	Post      *string `json:"post" xorm:"post"`           // 班组职务
	Order     *string `json:"order" xorm:"order"`         // 排序字段
	Admin     *int    `json:"admin" xorm:"admin"`
	State     *int    `xorm:"state" xorm:"state"`
}

type UserState struct {
	Bean          `xorm:"extends"`
	App   *string `xorm:"app"`
	User  *string `xorm:"user"`
	State *int    `xorm:"state"`
}

type Group struct {
	Bean             `xorm:"extends"`
	Code     *string `json:"code" xorm:"index unique VARCHAR(255)"` // 组织编码
	Zone     *string `json:"zone" xorm:"VARCHAR(255)"`              // 区域编码
	Type     *string `json:"type" xorm:"VARCHAR(255)"`              // 类型编码（1 原水 2 自来水 3 污水，如果是原水和污水用12表示，如果是原水自来水污水则用123表示）
	Name     *string `json:"name" xorm:"VARCHAR(255)"`              // 名称
	Sname    *string `json:"sname" xorm:"VARCHAR(255)"`             // 简称
	Level    *string `json:"level" xorm:"VARCHAR(255)"`             // 级别（G 集团 C 水司 D部门 支持同级、下级扩展，比如不能水司下面建集团）
	Parent   *string `json:"parent" xorm:"VARCHAR(255)"`            // 上级组织组织编码
	Root     *string `json:"root" xorm:"VARCHAR(255)"`              // 根域
	Tenantid *int    `json:"tenantid" xorm:"INT(11)"`               // 企业ID
	Address  *string `json:"address" xorm:"VARCHAR(255)"`           // 地址
	Position *string `json:"position" xorm:"VARCHAR(255)"`          // 坐标
	Province *string `json:"province" xorm:"VARCHAR(255)"`          // 省
	City     *string `json:"city" xorm:"VARCHAR(255)"`              // 市
	District *string `json:"district" xorm:"VARCHAR(255)"`          // 区/县
	Zipcode  *string `json:"zipcode" xorm:"VARCHAR(255)"`           // 行政区划代码（邮编）
	Linkman  *string `json:"linkman" xorm:"VARCHAR(255)"`           // 联系人
	Phone    *string `json:"phone" xorm:"VARCHAR(255)"`             // 联系人电话
	Status   *int    `json:"status" xorm:"INT(11)"`                 // 启用状态 [ 0 停用 1 启用 ]
	Remark   *string `json:"remark" xorm:"VARCHAR(255)"`            // 备注
	Order    *int    `json:"order" xorm:"INT(11)"`                  // 排序字段
}

type AppMenu struct {
	Bean                `xorm:"extends"`
	App         *string `xorm:"app"`         //应用编码
	Name        *string `xorm:"name"`        //功能名称
	Icon        *string `xorm:"icon"`        //功能图标
	Type        *string `xorm:"type"`        //功能类型
	Value       *string `xorm:"value"`       //功能地址
	Parent      *string `xorm:"parent"`      //父功能
	Orientation *string `xorm:"orientation"` //屏幕方向
	Order       *int    `xorm:"order"`       //排序
	Remark      *string `xorm:"remark"`      //备注
	Status      *int    `xorm:"status"`      //可用状态
}

type AppBanner struct {
	Bean             `xorm:"extends"`
	App      *string `xorm:"app"`      //应用编码
	Position *string `xorm:"position"` //广告位置 setup:首次安装 landing:应用加载	index:应用首页
	Image    *string `xorm:"image"`    //图片资源
	Href     *string `xorm:"href"`     //目标链接
	Duration *string `xorm:"duration"` //显示时长（秒）
	Begin    *int64  `xorm:"begin"`    //投放时间
	End      *int64  `xorm:"end"`      //结束时间
	Remark   *string `xorm:"remark"`   //备注
	Status   *int    `xorm:"status"`   //可用状态
	Order    *int    `xorm:"order"`    //排序
}

//AppVersion 应用版本
type AppVersion struct {
	Bean     `xorm:"extends"`
	App      *string `json:"app" xorm:"VARCHAR(255)"`      //应用编码
	Platform *string `json:"platform" xorm:"VARCHAR(255)"` //应用平台
	// Code     *string `json:"code" xorm:"index VARCHAR(255)"`    //应用编码
	Version  *string `json:"version" xorm:"index VARCHAR(255)"` //版本号
	Strategy *string `json:"strategy" xorm:"VARCHAR(255)"`      //更新策略
	Resource *string `json:"resource" xorm:"VARCHAR(255)"`      //应用资源
	Hash     *string `json:"hash" xorm:"VARCHAR(255)"`          //哈希值（MD5）
	Size     *int    `json:"size" xorm:"INT(11)"`               //文件大小
	History  *string `json:"history" xorm:"VARCHAR(255)"`       //版本说明
	Bugfix   *string `json:"bugfix" xorm:"VARCHAR(255)"`        //修复问题
	Remark   *string `json:"remark" xorm:"VARCHAR(255)"`        //备注
}

func init() {
	//RegisterTables(App{})
	//RegisterTables(User{})
	RegisterTables(UserState{})
}
